/*******************************************************************************
* Signavio Core Components
* Copyright (C) 2012 Signavio GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/
package de.hpi.bpmn2_0.model.choreography;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import de.hpi.bpmn2_0.model.BaseElement;
import de.hpi.bpmn2_0.model.Collaboration;
import de.hpi.bpmn2_0.model.FlowElement;
import de.hpi.bpmn2_0.model.activity.AdHocSubProcess;
import de.hpi.bpmn2_0.model.activity.CallActivity;
import de.hpi.bpmn2_0.model.activity.Transaction;
import de.hpi.bpmn2_0.model.activity.type.BusinessRuleTask;
import de.hpi.bpmn2_0.model.activity.type.ManualTask;
import de.hpi.bpmn2_0.model.activity.type.ReceiveTask;
import de.hpi.bpmn2_0.model.activity.type.ScriptTask;
import de.hpi.bpmn2_0.model.activity.type.SendTask;
import de.hpi.bpmn2_0.model.activity.type.ServiceTask;
import de.hpi.bpmn2_0.model.activity.type.UserTask;
import de.hpi.bpmn2_0.model.callable.GlobalChoreographyTask;
import de.hpi.bpmn2_0.model.connector.SequenceFlow;
/**
* <p>Java class for tChoreography complex type.
*
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({
GlobalChoreographyTask.class
})
@XmlType(name = "tChoreography", propOrder = {
"flowElement"
})
public class Choreography
extends Collaboration
{
/* Constructors */
/**
* Default constructor
*/
public Choreography() {
super();
}
public Choreography(Collaboration collaboration) {
}
@XmlElementRefs({
/* Activities */
@XmlElementRef(type = ChoreographyTask.class),
@XmlElementRef(type = SubChoreography.class),
/* Edges */
@XmlElementRef(type = SequenceFlow.class)
})
protected List<FlowElement> flowElement;
public List<BaseElement> getChilds() {
List<BaseElement> childs = super.getChilds();
childs.addAll(this.getFlowElement());
return childs;
}
/* Getter & Setter */
/**
* Gets the value of the flowElement property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the flowElement property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getFlowElement().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link ManualTask }{@code >}
* {@link JAXBElement }{@code <}{@link TCallChoreographyActivity }{@code >}
* {@link JAXBElement }{@code <}{@link Transaction }{@code >}
* {@link JAXBElement }{@code <}{@link TEndEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TIntermediateCatchEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TFlowElement }{@code >}
* {@link JAXBElement }{@code <}{@link CallActivity }{@code >}
* {@link JAXBElement }{@code <}{@link TComplexGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TBoundaryEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TStartEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TExclusiveGateway }{@code >}
* {@link JAXBElement }{@code <}{@link BusinessRuleTask }{@code >}
* {@link JAXBElement }{@code <}{@link ScriptTask }{@code >}
* {@link JAXBElement }{@code <}{@link TInclusiveGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TDataObject }{@code >}
* {@link JAXBElement }{@code <}{@link TEvent }{@code >}
* {@link JAXBElement }{@code <}{@link ServiceTask }{@code >}
* {@link JAXBElement }{@code <}{@link ChoreographyTask }{@code >}
* {@link JAXBElement }{@code <}{@link TDataStore }{@code >}
* {@link JAXBElement }{@code <}{@link TSubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link TIntermediateThrowEvent }{@code >}
* {@link JAXBElement }{@code <}{@link UserTask }{@code >}
* {@link JAXBElement }{@code <}{@link TSequenceFlow }{@code >}
* {@link JAXBElement }{@code <}{@link TEventBasedGateway }{@code >}
* {@link JAXBElement }{@code <}{@link AdHocSubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link SendTask }{@code >}
* {@link JAXBElement }{@code <}{@link ChoreographySubProcess }{@code >}
* {@link JAXBElement }{@code <}{@link ReceiveTask }{@code >}
* {@link JAXBElement }{@code <}{@link TImplicitThrowEvent }{@code >}
* {@link JAXBElement }{@code <}{@link TParallelGateway }{@code >}
* {@link JAXBElement }{@code <}{@link TTask }{@code >}
*
*
*/
public List<FlowElement> getFlowElement() {
if (flowElement == null) {
flowElement = new ArrayList<FlowElement>();
}
return this.flowElement;
}
}